home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xpaint-2.1.1 / menu.h < prev    next >
C/C++ Source or Header  |  1995-05-03  |  1KB  |  41 lines

  1. typedef void    (*PaintMenuCallback)();
  2.  
  3. typedef struct PaintMenuItem_s {
  4.         Widget                  widget;
  5.         char                    *name;
  6.         PaintMenuCallback       callback;
  7.         void                    *data;
  8.         int                     flags;
  9.     int            nright;
  10.     struct PaintMenuItem_s    *right;
  11.     Widget            rightShell;
  12. } PaintMenuItem;
  13.  
  14. #define MF_NONE         0x00
  15. #define MF_CHECK        0x01
  16. #define MF_CHECKON      (0x01|0x02)
  17.  
  18. #define MF_GROUP1    0x10
  19. #define MF_GROUP2    0x20
  20. #define MF_GROUP3    0x40
  21. #define MF_GROUP4    0x80
  22.  
  23. typedef struct {
  24.         Widget          widget;
  25.         char            *name;
  26.         int             nitems;
  27.         PaintMenuItem   *items;
  28. } PaintMenuBar;
  29.  
  30. extern Widget    MenuBarCreate(Widget, int, PaintMenuBar[]);
  31. extern Widget    MenuPopupCreate(Widget, int, PaintMenuItem[]);
  32. extern void    MenuCheckItem(Widget, Boolean);
  33.  
  34. #define MI_NEW(name, flag, cb, cbdata, nright, right)    { None, name, (PaintMenuCallback)cb, (void*)cbdata, flag, nright, right, None }
  35. #define MI_RIGHT(name, nright, right)            MI_NEW(name, MF_NONE, NULL, NULL, nright, right)
  36. #define MI_FLAGCB(name, flag, cb, cbdata)        MI_NEW(name, flag, cb, cbdata, 0, NULL)
  37. #define MI_FLAG(name, flag)                MI_FLAGCB(name, flag, NULL, NULL)
  38. #define    MI_SIMPLECB(name, cb, cbdata)            MI_FLAGCB(name, MF_NONE, cb, cbdata)
  39. #define    MI_SIMPLE(name)                    MI_SIMPLECB(name, NULL, NULL)
  40. #define    MI_SEPERATOR()                    MI_SIMPLE("")
  41.